package com.smile.service.entity.events;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.List;
import java.util.UUID;

public class TakeoffToPointProgressData {

    @JsonProperty("flight_id")
    private UUID flightId;

    @JsonProperty("planned_path_points")
    private List<PlannedPathPoint> plannedPathPoints;

    @JsonProperty("remaining_distance")
    private int remainingDistance;

    @JsonProperty("remaining_time")
    private int remainingTime;

    @JsonProperty("result")
    private int result;

    @JsonProperty("status")
    private String status;

    @JsonProperty("track_id")
    private UUID trackId;

    @JsonProperty("way_point_index")
    private int wayPointIndex;

    // Getters and Setters
    public UUID getFlightId() {
        return flightId;
    }

    public void setFlightId(UUID flightId) {
        this.flightId = flightId;
    }

    public List<PlannedPathPoint> getPlannedPathPoints() {
        return plannedPathPoints;
    }

    public void setPlannedPathPoints(List<PlannedPathPoint> plannedPathPoints) {
        this.plannedPathPoints = plannedPathPoints;
    }

    public int getRemainingDistance() {
        return remainingDistance;
    }

    public void setRemainingDistance(int remainingDistance) {
        this.remainingDistance = remainingDistance;
    }

    public int getRemainingTime() {
        return remainingTime;
    }

    public void setRemainingTime(int remainingTime) {
        this.remainingTime = remainingTime;
    }

    public int getResult() {
        return result;
    }

    public void setResult(int result) {
        this.result = result;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public UUID getTrackId() {
        return trackId;
    }

    public void setTrackId(UUID trackId) {
        this.trackId = trackId;
    }

    public int getWayPointIndex() {
        return wayPointIndex;
    }

    public void setWayPointIndex(int wayPointIndex) {
        this.wayPointIndex = wayPointIndex;
    }

    // 内部类 - 路径点
    public static class PlannedPathPoint {
        @JsonProperty("height")
        private double height;

        @JsonProperty("latitude")
        private double latitude;

        @JsonProperty("longitude")
        private double longitude;

        public double getHeight() {
            return height;
        }

        public void setHeight(double height) {
            this.height = height;
        }

        public double getLatitude() {
            return latitude;
        }

        public void setLatitude(double latitude) {
            this.latitude = latitude;
        }

        public double getLongitude() {
            return longitude;
        }

        public void setLongitude(double longitude) {
            this.longitude = longitude;
        }
    }
}